草庐IT

Rust 结构体

全部标签

c# - System.String 的内部结构

我用反射查看了System.String的内部字段,发现了三个字段:m_arrayLengthm_stringLengthm_firstChar我不明白这是怎么回事。m_arrayLength是一些数组的长度。这个数组在哪里?它显然不是字符串类的成员字段。m_stringLength是有道理的。它是字符串的长度。m_firstChar是字符串中的第一个字符。所以我的问题是字符串的其余字符在哪里?如果不在字符串类中,字符串的内容存储在哪里? 最佳答案 第一个字符提供对缓冲区中第一个字符的内存地址的访问(通过&m_firstChar)。

c# - 为什么写入 24 位结构不是原子的(当写入 32 位结构时似乎是)?

我是一个修补匠——这一点毋庸置疑。出于这个原因(除此之外几乎没有其他原因),我最近做了一个小实验来证实我的怀疑,即写入struct不是原子操作,这意味着所谓的“不可变”值类型,它试图强制执行某些约束,假设可能无法实现其目标。我写了ablogpostaboutthis使用以下类型作为说明:structSolidStruct{publicSolidStruct(intvalue){X=Y=Z=value;}publicreadonlyintX;publicreadonlyintY;publicreadonlyintZ;}虽然上面的看起来像X!=Y或Y!=Z永远不可能为真的类型,在事实上,如

带有 XML 结构化数据的 C# HttpWebRequest

我正在开发第三方网络服务的客户端。目的是我将xml文件发送到服务器。我应该如何将xml文件附加到httpwebrequest?需要什么内容类型?更多建议?我不能使用mtom或dime.ie,因为我正在使用httpwebrequest。我也无法使用WCF。 最佳答案 这是使用HttpWebRequest发送XML结构化数据的非常基本的方法(顺便说一句,您需要使用request.ContentType="application/xml";):HttpWebRequestrequest=(HttpWebRequest)WebRequest

c# - 如何创建具有空值支持的结构?

我是C#新手。在C#中,我无法将结构的值设置为null如何创建支持null值的结构? 最佳答案 通过使用GenericNullable类来包装结构和值类型,可以使它们可以为空。例如:Nullablenum1=null;C#通过在类型后添加问号为此提供了一种语言功能:int?num1=null;同样适用于任何值类型,包括结构。MSDN说明:NullableTypes(c#) 关于c#-如何创建具有空值支持的结构?,我们在StackOverflow上找到一个类似的问题:

c# - 结构图,采用插件列表的构造函数

我有一个这样的界面publicinterfaceIWriter{...}和一个类publicclassWriterMerger{publicWriterMerger(IEnumerablewriters)...}我希望structuremap用所有已注册的IWriter填充WriterMerger上的构造函数参数。我注册了不同的作者StructureMap.ObjectFactory.Initialize(x=>{x.ForRequestedType().AddConcreteType();x.ForRequestedType().AddConcreteType();x.ForRequ

c# - 结构图 - 同一接口(interface)的两个实现

我有一个具有以下ctor的服务类:publicclass(IMessageServiceemailService,IMessageServicesmsService){...}和IMessageService的两个实现(电子邮件和短信)。如何配置容器以正确解析此构造函数?这是命名实例的用武之地,还是另一种情况? 最佳答案 您可以使用命名实例或智能实例来解决这个...//Namedinstancesthis.For().Use().Named("emailService");this.For().Use().Named("smsSer

c# - 跨 Windows 体系结构的 JPEG 解压缩不一致

我正在一堆装有不同版本Windows的计算机上测试JPEG解压缩。所有这些计算机都安装了.NET4,我正在针对.NET2和“AnyCPU”平台目标进行编译。以下代码在不同的系统上产生不同的输出。Bitmapbmp=(Bitmap)Image.FromFile("test.jpg");longdatasum=0;for(inty=0;y所有Win764位和WinXP32位机器都产生一个结果。而所有Win732位机器都会产生另一个结果。知道为什么输出会有所不同吗? 最佳答案 它由gdiplus.dll实现。检查在不同系统上实际加载了哪些

c# - Linq:将平面结构转换为分层结构

什么是转换平面结构最简单且比较有效的方法:object[][]rawData=newobject[][]{{"A1","B1","C1"},{"A1","B1","C2"},{"A2","B2","C3"},{"A2","B2","C4"}//..more};进入层次结构:classX{publicX(){Cs=newList();}publicstringA{get;set;}publicstringB{get;set;}publicListCs{get;privateset;}}结果应该是这样的//pseudocodewhichdescribesstructure:result={

c# - 为什么有些方法对可空结构的空值起作用而有些方法不起作用?

开门见山:int?i=null;i.ToString();//happyi.GetType();//nothappy我得到一个veryrelatedquestion这实际上是关于为什么i.ToString()工作正常。编辑:刚发现这个极端情况是themostvotedoneinthisSOthread! 最佳答案 是因为ToString是虚拟的,而GetType不是。Nullable在CLR中具有特殊的装箱行为。当您调用GetType在可为空的情况下,它被装箱(请参阅MSDN,实际上任何struct都会发生这种情况)。但是,对于可空

c# - 将结构更改为密封类时隐式转换失败

有问题的结构/类:publicstructHttpMethod{publicstaticreadonlyHttpMethodGet=newHttpMethod("GET");publicstaticreadonlyHttpMethodPost=newHttpMethod("POST");publicstaticreadonlyHttpMethodPut=newHttpMethod("PUT");publicstaticreadonlyHttpMethodPatch=newHttpMethod("PATCH");publicstaticreadonlyHttpMethodDelete=n